home *** CD-ROM | disk | FTP | other *** search
/ Cracking 2 / Cracking II..iso / Texty / crackme / CrackMe-id17-lu48-en.txt < prev    next >
Encoding:
Text File  |  1999-06-26  |  2.9 KB  |  107 lines

  1.             ------------------------------
  2.             CrackMe [id:17] coded by tC...
  3.             Tutorial by Lucifer48, 25 june
  4.             ------------------------------
  5.  
  6. I apologize for my lame english...
  7. I enter a dummy combination, i put a bpx hmemcpy, click on the "<-check->" button, nothing
  8. happens :( I also try a bpx IsDlgButtonChecked, it doesn't work.
  9. How entering into the code AND in the right place/offset ?
  10. This time W32Dasm will help me ;) i look at "String Data References", i hope i will find
  11. something. I find the string "Registered", click on it and, *cool*, i am in the rigth place :)
  12. I see few times the same tests (with jz/jnz 004403EB). I write down the adress of the beginning
  13. of the routine (004402EC), and put a bpx on it. We are here:
  14.  
  15.  
  16. XXXX:004402EC  PUSH EBX                 ;soft-ice has stopped here
  17. XXXX:004402ED  MOV  EBX,EAX
  18. XXXX:004402EF  MOV  EAX,[EBX+00000308]  ;a specific button
  19. XXXX:004402F5  MOV  EDX,[EAX]
  20. XXXX:004402F7  CALL [EDX+000000B8]      ;CMP BYTE PTR [EAX+000001F2],01 / SETZ AL
  21. XXXX:004402FD  TEST AL,AL
  22. XXXX:004402FF  JNZ  004403EB            ;not checked = (no jump)
  23. ...
  24. from here, we have this following routine 11 times, 'yyy' is:
  25. 310, 31C, 320, 324, 328, 330, 304, 30C, 314, 318, 32C.
  26. (unfortunalely these numbers aren't the handles of the buttons)
  27.  
  28. XXXX:004403xx  MOV  EAX,[EBX+00000yyy]
  29. XXXX:004403xx  MOV  EDX,[EAX]
  30. XXXX:004403xx  CALL [EDX+000000B8]      ;CMP BYTE PTR [EAX+000001F2],01 / SETZ AL
  31. XXXX:004403xx  TEST AL,AL
  32. XXXX:004403xx  JZ/JNZ 004403EB
  33.  
  34. In fact, each button is tested, the crackme checks only if the matrix (on the right) is valid.
  35. To obtain the matrix (on the right), we must check (or not) buttons in the left matrix. And there
  36. are many possibilities to get the same result.
  37.  
  38. The routine ends like that:
  39.  
  40. XXXX:004403D9  JZ   004403EB
  41. XXXX:004403DB  MOV  EDX,004403F8
  42. XXXX:004403E0  MOV  EAX,[EBX+000002D0]
  43. XXXX:004403E6  CALL 004210B0
  44. XXXX:004403EB  POP  EBX
  45. XXXX:004403EC  RET
  46.  
  47. Assuming the following matrix (on the right) is:
  48.  
  49. A   B   C   D
  50. E   F   G   H
  51. I   J   K   L
  52.  
  53. This is the comparisons done (in order):
  54.  
  55. * B (308): not checked    * A (304): checked
  56. * D (310): not checked    * C (30C): checked
  57. * G (31C): not checked    * E (314): checked
  58. * H (320): not checked    * F (318): checked
  59. * I (324): not checked    * K (32C): checked
  60. * J (328): not checked
  61. * L (330): not checked
  62.  
  63. This is the solutions i have found (left matrix!):
  64.  
  65. O  X  O  O
  66. O  O  O  X
  67. O  O  O  X
  68.  
  69. O  O  O  O
  70. O  O  X  X
  71. O  O  O  X
  72.  
  73. O  O  X  O
  74. O  O  X  X
  75. O  O  O  X
  76.  
  77. O  O  X  O
  78. O  O  X  X
  79. X  O  O  X
  80.  
  81. O  X  O  O
  82. O  O  X  X
  83. O  O  O  X
  84.  
  85. O  X  X  O
  86. O  O  X  X
  87. O  O  O  X
  88.  
  89. O  X  X  O
  90. O  O  X  X
  91. X  O  O  X
  92.  
  93. X  X  X  O
  94. O  O  X  X
  95. O  O  O  X
  96.  
  97. X  X  X  O
  98. O  O  X  X
  99. X  O  O  X
  100.  
  101. I don't know how many matrix i have forgotten, but i think it's enough!
  102.  
  103. Greetings: ID group, Eternal Bliss (wonderfull site), tC... (for his *big* crackme in delphi ),
  104.            ACiD BuRN, and other personnal friends...
  105.  
  106. Lucifer48
  107.